home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir34 / xdisk360.zip / XDISK.DOC < prev    next >
Text File  |  1995-02-15  |  59KB  |  1,255 lines

  1.         ╒═══════════════════════════════════════════╕
  2.         │                 xDISK                     │
  3.         │             Release 3.60.0                │
  4.         │                                           │
  5.         │ (C) Copyright 1989-1993 FM de Monasterio  │
  6.         │           All Rights Reserved             │
  7.         │            Licensed Material              │
  8.         ╘═══════════════════════════════════════════╛
  9.  
  10.   CONTENTS
  11.         1.  SUMMARY
  12.         2.  REGISTRATION
  13.         3.  GENERAL INFORMATION
  14.         4.  INSTALLATION & USAGE
  15.             a. Installing the driver via CONFIG.SYS
  16.             b. Installing from the DOS command line
  17.             c. Modifying the driver after installation
  18.                Command-line switches
  19.                Command-line comments
  20.             d. Status/Usage/Help panels
  21.  
  22.         5.  BASIC TECHNICAL INFORMATION
  23.             a. DOS Errorlevels
  24.             b. Disk internals
  25.             c. RAM-Disk identification & DOS version
  26.             d. Self-installation in upper memory
  27.             e. xDISK communication interface
  28.  
  29.         6.  COPYRIGHT & LICENSE
  30.             U.S. Government information
  31.             Upgrades
  32.             Limitations
  33.             Technical support
  34.  
  35.  
  36.   1.  SUMMARY
  37.   -----------
  38.  
  39.   xDISK is a versatile EMS-based, RAM-disk whose size can be modified without
  40.   having to reboot the machine. Sector size, cluster size, and root directory
  41.   size can be changed as well. The disk can provide visual and audio clues of
  42.   its activity.
  43.  
  44.   xDISK generates the disks in expanded memory conforming to the Lotus/Intel/
  45.   Microsoft (LIM) specification 4.0 (EMS). xDISK can be collapsed to free its
  46.   EMS for other uses, and can be expanded to use all of the available EMS, or
  47.   any intermediate size multiple of 16 kilobytes (KB). xDISK does not use the
  48.   EMS page frame, thus avoiding the need to dedicate 64 KB of memory for this
  49.   frame.
  50.  
  51.   Two kinds of on-the-fly resizable xDISKs can be created: "Inelastic," which
  52.   maximizes disk space, but whose data contents are not preserved if the disk
  53.   is resized; and "elastic," which permits data-preserving and non-preserving
  54.   disk resizing.
  55.  
  56.   Security features include: RAM-disk write protecting and format protecting,
  57.   locking/unlocking DOS access to the disk, and the enforcing of user-defined
  58.   password checks before the implementation of any command to the disk.
  59.  
  60.   Loading features include selfinstallation of the xDISK device driver in the
  61.   upper memory area, with or without MS-DOS 5+, if an extended memory manager
  62.   supporting the XMS 2+ is present, and the capability of loading this driver
  63.   from the DOS command line (MS-DOS and PC-DOS versions 3.0 through 6.0).
  64.  
  65.   Minimum xDISK requirements are MS-DOS version 3.0 or later (or a compatible
  66.   operating system), expanded memory conforming to the LIM EMS 4.0, and 1,500
  67.   bytes of conventional (or upper memory) per drive to be installed. xDISK is
  68.   available in 086, 286, 386, and 486 microprocessor-type optimized versions.
  69.  
  70.  
  71.  
  72.   2.  REGISTRATION
  73.   ----------------
  74.  
  75.   This software is user-supported; the present release, although lacking the
  76.   options marked by asterisks, is a fully usable program.  You may test this
  77.   release for (in)compatibilities with your system, but after the testing is
  78.   completed you are requested to order a registered copy of the full release
  79.   of the software from the address at the end of this documentation.
  80.  
  81.   See the final part of this documentation for information on the Licensing,
  82.   Distribution, Warranty, and Limitation of Remedies of the software.
  83.  
  84.      --------------------------------------------------------------------
  85.      XDISK.REG contains a form needed to register or upgrade the software
  86.      --------------------------------------------------------------------
  87.  
  88.   If you would rather use this unregistered copy, consider making a donation
  89.   to the Children's Hospital of Washington DC, for indigent children in need
  90.   of medical care.  Every year in the USA, infant mortality claims the lives
  91.   of tens of thousands of children before their first year of life, and most
  92.   of them come from families below poverty level...  Please send to the same
  93.   address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
  94.   the obverse, and marked "For Deposit Only" on the reverse.  Donations will
  95.   be sent to Children's Hospital.  Please identify the program for which you
  96.   are making the donation.
  97.  
  98.  
  99.  
  100.   3.  GENERAL INFORMATION
  101.   -----------------------
  102.  
  103.   xDISK is a virtual-device driver system to generate (and modify) RAM-disks in
  104.   expanded memory conforming to LIM specification version 4 or higher. The disk
  105.   parameters can be modified without having to reboot the machine.
  106.  
  107.   A a data-safe resizing can be obtained with some command switches.  Data-safe
  108.   resizing is available if the RAM-disk has been installed as an "elastic" unit
  109.   (the default condition).  xDISK can also be installed as an "inelastic" unit,
  110.   which can be resized on-the-fly as well, but whose resizing destroys the disk
  111.   contents; "inelastic" disks maximize the usage of EMS disk space.
  112.  
  113.   This system consists of two programs: (1) XDISK.SYS, a block device driver to
  114.   be installed via CONFIG.SYS, after an EMS manager has been installed, and (2)
  115.   XDISK.EXE, a utility providing an interface with the driver via DOS to permit
  116.   changing of one or more parameters of the specified RAM-disk.
  117.  
  118.   Warning     -----------------------------------------------------------------
  119.           Due to an error in the LH (LOADHIGH) command of MS-DOS and PC-DOS
  120.           5.00 and MS-DOS 6.00, XDISK.EXE does not select the correct drive
  121.           if loaded via this command in either upper or lower memory.  (The
  122.               LH command is not needed for the execution of the drive interface
  123.           utility.)
  124.               -----------------------------------------------------------------
  125.  
  126.  
  127.   The XDISK.SYS and XDISK.EXE files of a given version are matched and will not
  128.   work with those of other xDISK versions. The minimum requirements are an EMS-
  129.   4.0 manager, and MS-DOS version 3 or later. Some xDISK options require MS-DOS
  130.   3.1+ version or later (see below).
  131.  
  132.   Since xDISK does not require an EMS page frame (i.e., a large region of upper
  133.   memory where the EMS 'pages' are normally posted), 64 KB can be recovered for
  134.   upper-memory use if frame-dependent EMS utilities are not used.  EMS services
  135.   without a page frame are supported by most 386-specific memory managers, such
  136.   EMM386.EXE (use switch FRAME=NONE in MS-DOS 5 and 6 version), 386MAX.SYS (use
  137.   switch NOFRAME), QEMM386.SYS (use switches FR=NONE FEMS), etc.
  138.  
  139.   xDISK RAM-disks are compatible with the CHKDSK utility of DOS as well as with
  140.   other programs that sometimes encounter difficulties with other resizable RAM
  141.   disks. Starting with xDISK version 3.32, the boot sector of the disk complies
  142.   fully with the MS-DOS version 5 and 6 format.
  143.  
  144.  
  145.   CPU versions
  146.  
  147.     The program is written in assembly language; each version consists of four
  148.     processor-type releases (086, 268, 386 and 486) in which the code has been
  149.     optimized for the CPU types of the Intel iAPX processor family (x86). This
  150.     is needed because such processors differ markedly in instruction execution
  151.     time.  Incorporation of a memory cache in some x86 processors also affects
  152.     this time by influencing the speed of both instruction fetching and memory
  153.     access.  The 486 release should be used with 586 CPU (Pentium) machines.
  154.  
  155.     In addition to standard (086) assembly language instructions, the 286, 386
  156.     and 486 releases of the program also use 286-, 386- or 486-specific opcode
  157.     instructions in 'real' mode (which is the native mode for 086 processors).
  158.     The type and degree of code optimization vary with the CPU type, and yield
  159.     usually small variations of the size of the resident code.  These releases
  160.     can be used in machines having the corresponding or higher CPU type.
  161.  
  162.  
  163.  
  164.   4.  INSTALLATION & USAGE
  165.   ------------------------
  166.  
  167.   The utility INSTALL.EXE, enclosed with the program files, may be used to copy
  168.   these files to a user-defined drive and directory, and--if so desired--to add
  169.   a command to the file CONFIG.SYS which will install the driver XDISK.SYS upon
  170.   rebooting, and to add the user-defined directory to the PATH statement in the
  171.   AUTOEXEC.BAT file.
  172.  
  173.   The following sections describe the manual installation of the xDISK driver.
  174.  
  175.  
  176.  
  177.   A.  Installing via CONFIG.SYS
  178.  
  179.   XDISK.SYS may be installed via the CONFIG.SYS file on the boot disk after the
  180.   LIM-3+ EMS manager has been installed.  The filename of the EMS driver varies
  181.   with the manufacturer, but its code must include the string 'EMMXXXX0,' whose
  182.   presence can be verified with a file-browsing utility.
  183.  
  184.   The following command must be included in the file CONFIG.SYS:
  185.  
  186.     DEVICE=[path]XDISK.SYS [?n] [/DB/DR/DS/KB/LH/PK/VD/VM] [;comment]
  187.  
  188.   where <path>, if given, is the path specification (including drive) for XDISK
  189.   .SYS; if <path> is not specified, the driver file is assumed to be located in
  190.   the root directory of the booting drive.
  191.  
  192.   Comments preceded by a semicolon in the DEVICE= line specification, which may
  193.   be useful in annotating CONFIG.SYS commands, are ignored during installation.
  194.   A description of the switches (/DB, /DR, etc) is provided below.  The default
  195.   value for switch /DB, /DR, or /DS is used if the switch (or its corresponding
  196.   parameter) is not specified.
  197.  
  198.   The SIZE parameter needs not be specified if using the DEVICEHIGH (MS-DOS 5+)
  199.   or the HIDEVICE (DR-DOS 6) command to install the driver in the upper memory.
  200.  
  201.  
  202.  
  203.   Installation avoidance
  204.  
  205.   In registered copies of xDISK, driver installation can be avoided by pressing
  206.   the <Esc> key before the installation banner is displayed.  Pressing this key
  207.   interrupts the installation, and the user is prompted as to whether the drive
  208.   is to be installed:
  209.  
  210.         xDISK: Continue loading RAM-disk as drive X:? [Yn]
  211.  
  212.   Press <Y> or <Enter> to continue or <N> to cancel.  Avoiding the installation
  213.   produces no memory penalty under DOS version 3.30 or higher but uses some 256
  214.   bytes of conventional memory in earlier DOS versions.
  215.  
  216.  
  217.  
  218.   B.  Installing from the DOS command line
  219.  
  220.   Alternatively, the driver may also be loaded from the command line at the DOS
  221.   prompt (that is, after the system has been booted and configured via the file
  222.   CONFIG.SYS) by means of the associated utility XDISK.EXE. Command-line is not
  223.   yet imlpemented under DR-DOS version 5+.
  224.  
  225.   Assuming XDISK.EXE is in the DOS path, the following command must be used for
  226.   the command-line loading of the driver:
  227.  
  228.             XDISK /LX=[path]XDISK.SYS [/switches]
  229.   or
  230.             XDISK /LX:[path]XDISK.SYS [/switches]
  231.  
  232.   where <path>, if given, is the directory path specification (including drive)
  233.   for the XDISK.SYS file; if <path> is not specified, the file is assumed to be
  234.   located in the current directory.  The use of a colon or equal sign after /LX
  235.   is mandatory. (See below for the description of the command switches.)
  236.  
  237.   xDISK drives loaded from the DOS prompt can be uninstalled via XDISK.EXE (see
  238.   switch /UX below).  The maximum number of drives allowed by MS-DOS, including
  239.   floopy, hard, and RAM-disks, is 26 (A: through Z:).
  240.  
  241.  
  242.  
  243.   C.  Modifying the xDISK driver
  244.  
  245.   After the xDISK driver has been installed, XDISK.EXE can be used to interface
  246.   with the driver.  This utility allows for the modification of disk parameters
  247.   from the DOS command line:
  248.  
  249.             XDISK [?] [d: [/switches]] [;comments]
  250.  
  251.   ?   If xDISK is executed with <?> as the only argument (notice the absence of
  252.       a preceding backslash), the program searches all block device drivers for
  253.       the xDISK driver signature, and displays a list of the installed drivers.
  254.  
  255.   d   This is the drive designator letter, followed by <:>, that identifies the
  256.       xDISK drive.  The specification of a non-xDISK drive or of a non-existing
  257.       drive generates separate error messages.  Defaults: Null drive, no colon,
  258.       or x=<ASCII code 21-40> = Current drive unit letter.
  259.  
  260.   The two other components of the command line are discussed below:
  261.  
  262.  
  263.   SWITCHES
  264.   --------
  265.  
  266.   Switches are optional commands, passed to the driver to modify its operation,
  267.   which are added to the command line invoking the xDISK driver (at the time of
  268.   installation) or its XDISK.EXE interface utility.
  269.  
  270.   The switches are not case sensitive, but must be preceded by a backslash [/].
  271.   If xDISK is invoked without any switch (or when the switches are not preceded
  272.   by slashes, and thus are ignored), the status of the xDISK drive is displayed
  273.   at the DOS command line.
  274.  
  275.   The contents of the RAM-disk are destroyed by the switches /DB, /DR, /DS, /DC
  276.   and /DE, which reformat the disk.  The contents are preserved by the switches
  277.   /DX+ and /DX-, which resize the disk without reformatting.
  278.  
  279.   Only the following switches are recognized when loading the driver:
  280.  
  281.          /DB, /DR, /DS, /DU, /KB, /LH, /PK, /VD, and /VM
  282.  
  283.   All switches are recognized after installation of the driver, except for /DU,
  284.   /KB, /LH, /PK, and /VM.
  285.  
  286.     ------------------------------------------------------------------------
  287.     (*) Asterisks mark options available in the registered program copy only
  288.     ------------------------------------------------------------------------
  289.  
  290.  
  291.   SWITCH ?
  292.  
  293.       1. XDISK.SYS:
  294.  
  295.       If <?[n]> immediately follows the blank space terminating the driver name
  296.       in the DEVICE= line specification, the user is prompted as to whether the
  297.       corresponding RAM-disk is to be installed.  If <n> is missing or is not a
  298.       digit between 1 and 9, such prompt defaults to a YES answer in 5 seconds.
  299.       The prompt time-out value is provided by <n> if between the range 1 to 9;
  300.       the driver is forced to wait for an answer if n=0.
  301.  
  302.  
  303.       2. XDISK.EXE:
  304.  
  305.       This switch displays the Status/Usage/Help panels, which are described in
  306.       more detail in the section below.  If a VGA or EGA is the active adapter,
  307.       the program saves the contents of the palette registers prior to changing
  308.       the video attributes for its various displays.
  309.  
  310.       Preceded by a valid xDISK drive unit letter, <?> or </?> display the disk
  311.       status at the DOS prompt (/?) or at the xDISK Usage/Help panel (?).
  312.  
  313.       In the absence of a drive designator, <?> displays the list of the loaded
  314.       xDISK RAM-disks, and </?> displays either the status of the default drive
  315.       (if an xDISK one) or the list of installed disks (if the default drive is
  316.       not an xDISK drive).
  317.  
  318.       See section Status/Usage/Help Panels below.
  319.  
  320.  
  321. * SWITCH CS[n]
  322.  
  323.       Selects cluster size, i.e., DOS allocation units, where <n> can be 1, 2,
  324.       4, 8, 16, or 32 sectors/cluster; the final size may be adjusted by xDISK
  325.       to a higher value, especially if dealing with a large disk.  The smaller
  326.       the size the lesser the chance to degrade the compactness of the packing
  327.       of files in the disk (which affects switch /DX; see below).
  328.  
  329.       Defaults: /CS = /CS1.
  330.  
  331.  
  332. * SWITCH DA[±]
  333.  
  334.       Selects whether changes in the disk parameters are implemented via calls
  335.       to DOS (/DA+) or directly to the driver (/DA-).  If an on-the-fly, data-
  336.       compression utility is being used to increase disk capacity, which would
  337.       normally take over DOS calls to xDISK, do not resize the disk via direct
  338.       calls to the driver (/DA-) since this will damage such a utility.
  339.  
  340.       Defaults: /DA = /DA+.
  341.  
  342.  
  343.   SWITCH DB[n][!]
  344.  
  345.       Selects disk size, in which <n> is between 16 and 32768 KB in steps of 16
  346.       KB.  If <n> is not a 16-KB multiple, the size is increased to the nearest
  347.       larger multiple available.  The largest RAM-disk size supported is 32 MB.
  348.  
  349.       Unless switch /ND or /NQ is selected as well, disk resizing by switch /DB
  350.       requires confirmation by the user, since the disk is reformatted, and its
  351.       contents are thus destroyed.
  352.  
  353.       Switch /DB[n] installs an "elastic" disk that, under many conditions, can
  354.       expand or shrink via switch /DX± (see below) preserving the contents.  In
  355.       contrast, switch /DB[n]! installs an "inelastic" disk that allows maximal
  356.       utilization of the EMS but disables data-safe expansion or shrinkage; use
  357.       /DB[n]! if loading a RAM-disk that will not need resizing.
  358.  
  359.       Defaults: In CONFIG.SYS, null switch or null <n> = /DB64.  In the command
  360.       line of DOS, /DB = /DB64; null switch is ignored.
  361.  
  362.  
  363. * SWITCH DC
  364.  
  365.       Switch /DC collapses the RAM-disk to a size of 0 KB and releases all the
  366.       EMS pages previosuly allocated to the disk.  Unless switch /ND or /NQ is
  367.       also selected, disk collapse requires user confirmation; switch /DC does
  368.       not change the existing /DR and /DS values.
  369.  
  370.       If disk collapse has occurred for, say, disk J, DOS-mediated requests to
  371.       the drive, e.g. <CHKDSK J:> or <DIR J:>, will trigger the folowing error
  372.       message from MS-DOS 5+:
  373.  
  374.             Invalid disk change reading drive J
  375.             Please insert volume xDISK∙360 serial 3600-0010
  376.             Abort, Retry, Fail?
  377.  
  378.       The serial number specifies the xDISK version (3.60.0) and the disk unit
  379.       number (A=1, B=2, C=3... J=10) in a binary-packed decimal number format.
  380.  
  381.       Respond to the "Abort, Retry, Fail?" question by pressing the <A> key to
  382.       return to the DOS prompt. This message is a remainder that the disk does
  383.       exist, but it is collapsed.  Such a disk can only be restored via switch
  384.       /DB or /DE since reformatting is needed; the data-preserving switch /DX+
  385.       is not accepted if the disk is collapsed.
  386.  
  387.       Do not change drive to a collapsed RAM-disk as DOS will repeat the above
  388.       prompt until key <F> is pressed.  Disks failed by DOS generate different
  389.       error messages to CHKDSK.  A valid drive status is restored once the RAM
  390.       disk is expanded via switch /DB or /DE.  See switch /TL for invalidating
  391.       and revalidating disk access.
  392.  
  393.       No defaults.
  394.  
  395.  
  396. * SWITCH DE[!]
  397.  
  398.       Expands disk size to the maximum available EMS.  The maximum number root
  399.       entries is changed to 512, unless switch /DR[n] is specified afterwards.
  400.       Unless switch /ND or /NQ is also specified, this expansion requires user
  401.       confirmation.
  402.  
  403.       Switch /DE loads an "elastic" disk which can expand or shrink via switch
  404.       /DX± (see below), while preserving its contents during such resizing. In
  405.       contrast, switch /DE! loads an "inelastic" disk whose contents cannot be
  406.       preserved during resizing, but allows maximal EMS utilization.  Use /DE!
  407.       to create a RAM-disk that will not need resizing.
  408.  
  409.       No defaults.
  410.  
  411.  
  412.   SWITCH DR[n]
  413.  
  414.       Number of root directory entries (files and subdirectories) where <n> is
  415.       between 4 and 512.  (The final number of root entries may be adjusted by
  416.       xDISK to a higher or lower value, especially when loading a small disk.)
  417.       Unless switch /ND or /NQ is also selected, this resizing change requires
  418.       confirmation by the user.
  419.  
  420.       Each root directory entry uses 32 bytes from the allocated disk size.
  421.  
  422.       Warning      -----------------------------------------------------------
  423.            If there is not a sufficient number of entries, commands to
  424.            write to the disk trigger a critical error message of 'File
  425.            Creation Error.'  To decrease such a possibility, expanding
  426.            the disk to the maximum EMS size via switch /DE changes the
  427.            root directory entries to 512.  If less entries are needed,
  428.            follow switch /DE with /DRn, where n < 512.
  429.                    -----------------------------------------------------------
  430.  
  431.       Defaults: In CONFIG.SYS, null switch or null <n> = /DR64. In the command
  432.       line of DOS, /DR = /DR64; null switch is ignored.
  433.  
  434.  
  435.   SWITCH DS[n]
  436.  
  437.       Sector size, where <n> is 128, 256 or 512 bytes.  The standard DOS sector
  438.       is 512 bytes; use a smaller size when storing small files.  Unless switch
  439.       /ND or /NQ is also selected, the resizing change requires confirmation by
  440.       the user.
  441.  
  442.       Defaults: In CONFIG.SYS, null switch or null <n> = /DS512. In the command
  443.       line of DOS, /DS = /DS512; null switch is ignored.
  444.  
  445.  
  446. * SWITCH DX[±][n]
  447.  
  448.       Permits the limited shrinkage [-] and expansion [+] of the RAM-disk while
  449.       preserving the integrity of its contents.  Resizing is NOT implemented if
  450.       the resulting drive parameters would threaten the disk contents (see Disk
  451.       Internals below).
  452.  
  453.       Switch /DX- shrinks the free space of the disk to zero or to less than 16
  454.       KB.  Alternatively, /DX-n shrinks the disk by <n> KB or the nearest 16-KB
  455.       multiple.  Shrinkage is not implemented if free space is less than 16 KB,
  456.       as this would not free an EMS page (16 KB each).  The data-safe shrinkage
  457.       is available only under MS-DOS 3.10 or later version.  Shrinking an empty
  458.       disk yields a minimum size of 16 KB or more (depending on the other drive
  459.       parameters), i.e., /DX- does not collapse the disk.
  460.  
  461.       Warning    --------------------------------------------------------------
  462.          Switch /DX- uses an undocumented function supported in version
  463.          3.1 to 6.0 of MS-DOS; this function is also supported in other
  464.          OEM releases of MS-DOS, such as PC-DOS, COMPAQ DOS, etc. There
  465.          is no assurance, however, that such a function is supported in
  466.          systems other than MS-DOS, or that it will remain available in
  467.          future MS-DOS versions or revisions.
  468.                  --------------------------------------------------------------
  469.  
  470.       The amount of shrinkage is computed from the value, maintained by MS-DOS,
  471.       of the first cluster from which it starts the search for free space prior
  472.       disk write operations (such a value is displayed on the Status panel, see
  473.       Status/Usage/Help Panels below).  DOS normally uses all of the previously
  474.       unused free space before reusing freed space.  Contents must be compacted
  475.       (i.e. there should be no free gaps between used clusters) for proper disk
  476.       shrinkage. Switch /DX- compares the calculated kilobytes needed to resize
  477.       the disk with the amount occupied by the data.  If the former are smaller
  478.       than the latter, free gaps are assumed (i.e. the free-space cluster value
  479.       does not indicate the last cluster in use) and shrinkage is cancelled.
  480.  
  481.       Note  -------------------------------------------------------------------
  482.             To compact an "elastic" disk, use only a defragmenting utility that
  483.             provides a full optimization, i.e., it does not leave free clusters
  484.             interspersed among used clusters, such as the DEFRAG.EXE utility of
  485.             MS-DOS 6.  (Do not use a defragmenting utility that places a hidden
  486.             data file in the last disk cluster, as this may interfere with disk
  487.             shrinkage.)
  488.             -------------------------------------------------------------------
  489.  
  490.  
  491.       Switch /DX+ expands total disk size to twice its formatted size, provided
  492.       that the resulting drive parameters do not threaten the integrity of disk
  493.       contents.  Alternatively, switch /DX+n expands the disk by <n> KB, or the
  494.       nearest higher 16-KB multiple.
  495.  
  496.       A disk shrunk via /DX- can be restored to its original (or a larger) size
  497.       via switch /DX+ or /DX+n, and vice versa.  A RAM-disk created with switch
  498.       /DE! or /DB[n]! (fixed size) cannot be resized with switch /DX±.
  499.  
  500.       Defaults: /DX =  /DX+.
  501.  
  502.  
  503.   SWITCH DUd
  504.  
  505.       Assigns a tentative drive unit code to the disk to be installed, in which
  506.       the unit code <d> can be a letter between "A" and "Z."  Normally, DOS 3+,
  507.       which is required to install xDISK, assigns such an unit code to the disk
  508.       at the time of installation, overwritting any user-assigned code.  Switch
  509.       /DU is available for troubleshooting purposes and is ignored after driver
  510.       installation.
  511.  
  512.       No defaults.
  513.  
  514.  
  515. * SWITCH KB
  516.  
  517.       Skips displaying the installation banner when loading the driver; switch
  518.       /KB is ignored after installation.
  519.  
  520.       No defaults.
  521.  
  522.  
  523. * SWITCH LH[n]
  524.  
  525.       Selects installation of the xDISK driver in the upper memory area (UMA),
  526.       i.e., between 640 KB and 1024 KB, which is below the 1-MB limit of 8086-
  527.       based memory but above the 640-KB hardware barrier of DOS.  Self-loading
  528.       in upper memory requires an extended memory manager (XMM) supporting the
  529.       services of XMS 2+, and a free upper memory block (UMB) of a little less
  530.       than 2 KB. The XMM must support UMB functions.
  531.  
  532.       The UMB allocation is implemented by calls to DOS, if this allocation is
  533.       managed by MS-DOS 5+ directly (i.e., command 'dos=umb' in CONFIG.SYS and
  534.       the drivers HIMEM.SYS and 386EMM.EXE loaded), or via direct calls to the
  535.       XMM, if MS-DOS 5+ does not control the UMB allocation.
  536.  
  537.       A low high-memory limit for the UMB may optionally be specified via <n>,
  538.       a hexadecimal number between A000 (640 KB) and FFFF (1,024 KB), so as to
  539.       select or avoid specific regions of upper memory.
  540.  
  541.       The self-loading into upper memory consumes 64 bytes of the conventional
  542.       memory per installed device; a few additional bytes are taken by the XMM
  543.       or MS-DOS during UMB allocation. Unlike the UMB loading mediated by some
  544.       memory managers, xDISK self-loading only requires a free UMB of the size
  545.       of the resident driver code (and not of the whole code of XDISK.SYS).
  546.  
  547.       Defaults:  Lower-memory installation, if a XMS/DOS error is found during
  548.       the UMB loading; high-memory installation below requested lower limit if
  549.       UMBs are not available above this limit.
  550.  
  551.       Note  -------------------------------------------------------------------
  552.             Due to the manner in which the DOS 5+ command 'DEVICEHIGH' modifies
  553.             the upper memory chain (if this command and the command DOS=UMB are
  554.             specified in CONFIG.SYS), self-loading into the upper memory is not
  555.             possible if 'DEVICEHIGH' were used to install another device driver
  556.             in a line preceding that of xDISK.  (To install XDISK.SYS in a UMB,
  557.             specify switch /LH in a 'DEVICE' line of CONFIG.SYS, and avoid this
  558.             switch in a 'DEVICEHIGH' line.)
  559.  
  560.             Under MS-DOS 5+, xDISK can selfload into the upper memory area when
  561.             'DEVICEHIGH' is used in a command line subsequent to that of xDISK.
  562.             -------------------------------------------------------------------
  563.  
  564.  
  565. * SWITCH LX
  566.  
  567.       Loads XDISK.SYS from the DOS command line (i.e. after the system has been
  568.       booted and the drivers installed via the CONFIG.SYS file).  The full-path
  569.       specification for XDISK.SYS must be given after switch /LX along with any
  570.       switches to configure the xDISK driver, as shown above in Usage item 2.0.
  571.       An equal sign or colon must separate /LX and the path specification with-
  572.       out intervening spaces, as otherwise the loading will fail.
  573.  
  574.       Switch /LX does not require a drive specification.
  575.  
  576.       Previously installed xDISK disks should not be collapsed for the command-
  577.       line loading to work properly, since the loading process rebuilds the DOS
  578.       kernel. Command-line loading of the driver increases the resident size by
  579.       slightly more than 1 KB.
  580.  
  581.       xDISK command-line loading is available under MS-DOS 3-6, IBM PC-DOS 3-6,
  582.       COMPAQ DOS 3-4, and other OEM releases of MS-DOS. It is not yet available
  583.       under DR-DOS version 5 and 6.
  584.  
  585.       Warning   --------------------------------------------------------------
  586.         The system will crash if the memory allocated to the driver is
  587.         released by means of a resident-removal utility!  Command-line
  588.         loaded drivers can be identified in memory maps via the string
  589.         'xDISK_<d:>,' where <d> is the drive letter for the disk.
  590.                 --------------------------------------------------------------
  591.  
  592.       xDISK drives loaded from the command-line either in lower (LMB) or upper
  593.       memory (UMB) can be unloaded from memory via switch /UX (see below).
  594.  
  595.       No defaults.
  596.  
  597.  
  598. * SWITCH ND
  599.  
  600.       Nulls the displaying of disk status, user confirmation request, and error
  601.       messages; errors can still be detected within a batch file with the ERROR
  602.       LEVEL command. Because the disk status display is generated by the driver
  603.       via BIOS calls, this message cannot be redirected by DOS (switch /ND thus
  604.       yields the same result as a redirection to the NUL device).  The RAM-disk
  605.       configuration parameters are preserved.
  606.  
  607.       No defaults.
  608.  
  609.  
  610.   SWITCH NQ
  611.  
  612.       Quiet resizing.  Avoids prompting for the user confirmation prior to disk
  613.       resize operations that destroy all data on the RAM-disk.
  614.  
  615.       No defaults.
  616.  
  617.  
  618. * SWITCH PDx
  619.  
  620.       Defines passssword <x> to be checked before implementing any disk change,
  621.       where <x> consists of 1-15 unshifted, alphanumeric characters (0-9, A-Z),
  622.       which must be followed by a blank space.
  623.  
  624.       The password is useful in situations when more than one user has acces to
  625.       the RAM-disk (e.g., a server) and, after copying the common-access files,
  626.       the disk is made write- and format-protected.
  627.  
  628.       No defaults.
  629.  
  630.  
  631. * SWITCH PK
  632.  
  633.       Pauses driver installation after its banner has been displayed until any
  634.       key is pressed; switch /PK is ignored after installation.
  635.  
  636.       No defaults.
  637.  
  638.  
  639. * SWITCH TL[±]
  640.  
  641.       Unlink (/TL-) or relink (/TL+) the drive to the chain of DOS drivers. The
  642.       unlinking turns the driver off, invalidating its use by DOS.  This may be
  643.       useful for collapsed disks that cannot be unloaded from memory.  Unlinked
  644.       RAM-disks can be turned on by relinking them to the DOS chain.
  645.  
  646.       Defaults: /TL = /TL+.
  647.  
  648.  
  649. * SWITCH TP[±]
  650.  
  651.       Disables (/TP-) or enables (/TP+) password verfication before any changes
  652.       to the RAM-disk are implemented; the password consists of 1-15 unshifted,
  653.       alphanumeric characters followed by <Enter>.
  654.  
  655.       Pressing <Esc> or <Break> during password testing returns the user to the
  656.       DOS command line. The typing of an incorrect character during the testing
  657.       vitiates prior accepted (correct) characters, and the entire password has
  658.       to be retyped. Note that warmbooting via <Ctrl-ALt-Del> is not suppressed
  659.       during password testing; rebooting destroys the RAM-disk data.
  660.  
  661.       Defaults: /TP = /TP+.
  662.  
  663.  
  664. * SWITCH TPA[±]
  665.  
  666.       Provides control of the audio feedback during the password checking (see
  667.       switch TP below) prior to the implementation of any change in the drive;
  668.       /TPA+ enables a 55-ms beep each time an invalid character is entered and
  669.       /TPA- disables this feedback.
  670.  
  671.       Defaults: /TPA = /TPA+.
  672.  
  673.  
  674. * SWITCH TPV[±]
  675.  
  676.       Provides control of the video feedback during the password checking (see
  677.       switch TP below) prior to the implementation of any change in the drive;
  678.       /TPV+ displays a <■> if a correct character is typed, and /TPV- disables
  679.       this feedback.
  680.  
  681.       Defaults: /TPV = /TPV+.
  682.  
  683.  
  684. * SWITCH TR[±]
  685.  
  686.       Protect (/TR+) or unprotect (/TR-) the drive from resizing to prevent the
  687.       inadvertent reformatting the disk.  The protection status is indicated by
  688.       the upper or lower case of the write-protection status (see switch TW) in
  689.       the xDISK configuration message: RW/RO = resize protected, rw/ro = resize
  690.       unprotected.
  691.  
  692.       Defaults: /TR = /TR+.
  693.  
  694.  
  695. * SWITCH TS[±]
  696.  
  697.       Provides control of audio feedback during DOS access to the specified RAM
  698.       disk: Use /TS+ to enable a brief click whenever the driver receives a DOS
  699.       request to read from or write to the disk, and /TS- to disable this audio
  700.       feedback. The ON status is indicated by the icon <> in the configuration
  701.       status messages.
  702.  
  703.       Defaults: /TS = /TS+.
  704.  
  705.  
  706. * SWITCH TV[±]
  707.  
  708.       Provides control of video feedback during DOS access to the specified RAM
  709.       disk: Use /TV+ to flash the icon <> on the top-left corner of the screen
  710.       each time the driver receives a request from DOS to read from or write to
  711.       the disk, and /TV- to disable this video feedback.  The ON and OFF status
  712.       is signalled repectively by the icons <> and <∙> in the status messages.
  713.  
  714.       Switch /VD allows for the selection of the character and the attribute to
  715.       be flashed by /TV+.
  716.  
  717.       Defaults: /TV = /TV+.
  718.  
  719.  
  720. * SWITCH TW[±]
  721.  
  722.       Use /W+ or /W- to write protect (Read-Only) or unprotect (Read-Write) the
  723.       drive contents as in a floppy disk.  Write-protect status does not permit
  724.       RAM-disk resizing.  The status is indicated by the icons <RO> and <RW> in
  725.       the xDISK configuration status messages.
  726.  
  727.       Defaults: /TW = /TW+.
  728.  
  729.  
  730. * SWITCH UX
  731.  
  732.       Uninstalls from memory the specified xDISK disk (only command-line loaded
  733.       drives can be uninstalled); the operating system will crash if this drive
  734.       is not the last drive in the DOS chain or if the resident code is removed
  735.       with a TSR-removal utility.
  736.  
  737.       No defaults.
  738.  
  739.  
  740. * SWITCH VD[c][a]
  741.  
  742.       Selects the ASCII character [c] and color attribute [a] of the read/write
  743.       disk activity flash mediated by switch /TV+.  Any ASCII character, except
  744.       for those with code 10 (line feed), 13 ( return), or 26 (end-of-file) can
  745.       be used for parameter <c>.  The background/foreground video attribute <a>
  746.       must be specified as a hexadecimal (base 16) digit pair between 00 and FF
  747.       where the following values are recognized:
  748.  
  749.     0 - black            8 - gray
  750.     1 - dim blue            9 - intense blue
  751.     2 - dim green            A - intense green
  752.     3 - dim blue-green (cyan)    B - intense blue-green
  753.     4 - dim red            C - intense red
  754.     5 - dim blue-red (magenta)    D - intense blue-red
  755.     6 - dim green-red (brown)    E - intense green-red (yellow)
  756.     7 - dim white            F - intense white
  757.  
  758.       No defaults.
  759.  
  760.  
  761.   SWITCH VM
  762.  
  763.       Use if installing XDISK.SYS in a virtual machine of a multitasking system
  764.       to prevent EMS losses if the virtual machine is ended.
  765.  
  766.       No defaults.
  767.  
  768.  
  769.  
  770.   COMMENTS
  771.   --------
  772.  
  773.   Comments may be added in the command line after the switches.  The comments,
  774.   which may be useful in annotating batch-file or CONFIG.SYS commands, must be
  775.   preceded by a semicolon, and are ignored by xDISK.
  776.  
  777.   Do not use the DOS redirection and pipe characters in comments for XDISK.EXE
  778.   commands since DOS will attempt to implement the implied redirection or pipe
  779.   request.
  780.  
  781.  
  782.  
  783.    D.  Status/Usage/Help panels
  784.  
  785.    Executing the program with switch /? selected allows access to the Status/
  786.    Usage and Help panels. (If a Mouse pointing device driver, compatible with
  787.    the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
  788.    of the services provided by these panels can also be activated by pointing
  789.    the mouse to specific areas of the screen and clicking either button.  The
  790.    mouse driver state is saved prior to the display, to be restored later, if
  791.    sufficient memory is available.)
  792.  
  793.    The STATUS/USAGE panel, which is shown first, describes status information
  794.    for the resident driver and its drive if an xDISK RAM-drive designator was
  795.    specified, or a list of the installed xDISK RAM-drives if any.  If a valid
  796.    drive designator was specified, the STATUS subpanel also displays used and
  797.    free kilobytes, and the value of the cluster from which DOS starts a free-
  798.    space search when writing to the disk (see SWITCH DX above).
  799.  
  800.    The USAGE subpanel shows a menu for the command switches: To cycle between
  801.    the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
  802.    upon the screen button labelled <Menu>.  If the resident is installed, the
  803.    status of some 'on/off' command switches is displayed by '+' or '-' before
  804.    a given menu entry.
  805.  
  806.    The DATA subpanel shows the current drive parameters for the specified (or
  807.    default) drive.  Press key <F3> or <D>, or click the mouse upon the screen
  808.    button labelled <Data> to display the panel; press the <Esc> key, or click
  809.    the mouse upon the button labelled <Esc>, to return to the main panel. The
  810.    following example was obtained from a 82%-full RAM-disk formatted with the
  811.    switches /DB64 /DR16 /DS512 /TW+ /TR+ /TV+:
  812.  
  813.  
  814.         █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  815.         █  Drive I, serial no. 3600-0009, label <xDISK I:>         ┌──█
  816.         █                                                        ╓▄└▄┐ █
  817.         █  Bytes/sector:      512        Medium ID type:  F8h    ║▀ ▀│ █ ═ [1]
  818.         █  Sectors/cluster:   4          DOS-CDS linked:  Yes    ║Esc│ █
  819.         █  No. of FAT copies: 1          EMS pages used:  5      ╚═══╛ █
  820.         █  Sectors/FAT copy:  2          Disk compacted:  Yes          █ ═ [2]
  821.         █  FAT entry length:  12-bit     Safe expansion:  +112 KB      █ ═ [3]
  822.         █  Root dir entries:  16         Safe shrinkage:  -0 KB        █ ═ [4]
  823.         █  First root sector: 3          Write protect:   Yes          █
  824.         █  First user sector: 4          Resize protect:  Yes          █
  825.         █  Reserved sectors:  1          Drive feedback:  Yes         █ ═ [5]
  826.  [6] ═ █  Free disk cluster: 34         Password check:  No           █
  827.  [7] ═ █  I/O disk accesses: 13157                                    █
  828.  [8] ═ █  I/O disk failures: 0         ▐▓▓▓▓▓▓▓░░░░░░░░░░░░░▌         █  
  829.         █                               0    % Root Space   100        █  
  830.         █                                                       Used ▓ █  
  831.         █ ▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░▌  Free ░ █  
  832.         █ 0                   % Total Space                 100        █  
  833.         █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█  
  834.  
  835.    NOTES:
  836.     [1] Click a mouse on this mouse icon to cancel this display if
  837.         the mouse is enabled, which is signalled by a beating <>.
  838.     [2] Indicates whether there are empty gaps in the disk packing.
  839.     [3] Number of additional KB that may be added to the disk size.
  840.     [4] Number of KB that may be set free of the current disk size.
  841.     [5] Indicates whether there is video <> and audio <> feedback
  842.         during DOS-mediated read and write access to the disk.
  843.     [6] Cluster at which MS-DOS will start searching for free space
  844.             when writing to the disk.
  845.     [7] Number of successful disk read and write requests from DOS.
  846.     [8] Number of errors during read or write requests to the disk.
  847.  
  848.  
  849.    The HELP panel provides a summary description of the program and commands,
  850.    and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
  851.    (or if the mouse is clicked upon the screen button labelled <Help>). Press
  852.    the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
  853.    down or up or the key <S> to scroll in a closed loop; alternatively, click
  854.    the mouse upon the Up/Down arrows at the top right corner of the screen to
  855.    scroll.  Press key <F1> to skip the brief program summary and position the
  856.    text on the Usage section directly.  Pressing <F1> a second time positions
  857.    the text on the Switches section directly.
  858.  
  859.    A beating icon to the left of the preceding USAGE panel controls the speed
  860.    of screen scrolling of the HELP panel via key <S> or the mouse arrows.  By
  861.    positioning the mouse pointer over this beating icon and clicking the left
  862.    or right mouse buttons, the rate of beating (and that of scrolling) can be
  863.    respectively increased or decreased.
  864.  
  865.    Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
  866.    top left corner of the screen, to return to the Status/Usage panel.  Press
  867.    key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
  868.    DOS-prompt command line.
  869.  
  870.    If the program is waiting for keyboard (or mouse input) during the display
  871.    of the Status/Usage panel, it issues the 'idle' interrupts of DOS, INT 28h
  872.    and, if running under MS-DOS 5+, INT 2Fh, function 1680h, to allow for the
  873.    the potential background activation of other residents.
  874.  
  875.    NOTE: (EGA users only)  The default IBM palette attributes are restored if
  876.      the EGA BIOS fails to store properly the original data.
  877.  
  878.  
  879.  
  880.   5.  BASIC TECHNICAL INFORMATION
  881.   -------------------------------
  882.   A.  DOS Errorlevels
  883.  
  884.   XDISK.EXE passes execution status data to DOS.  These can be tested in batch
  885.   files via the ERRORLEVEL command.  The following are values for version 3.31
  886.   or later:
  887.  
  888.         Value   Condition
  889.         -----   --------------------------------------
  890.           255   Cyclical Redundancy Check failure
  891.           254   286(386) version executed in non-286(386)+ machine
  892.  
  893.           240   Error during driver unloading
  894.           238   Criticsal error opening driver
  895.           237   All drives are assigned (reached maximum)
  896.           236   All drives are assigned (increased limit)
  897.           235   Driver initialization error (command-line load)
  898.           234   Driver failed installation (command-line load)
  899.           233   Overlay of driver failed (command-line load)
  900.           232   Operating system does not support DOS function 32h
  901.           231   Failed to find NUL driver (command-line load)
  902.           230   Error during XDISK.SYS load (command-line load)
  903.  
  904.           128   Unknown video card/video contents not preserved
  905.            65   Invalid EMS version
  906.            64   Invalid DOS version (1-2, 5; OS/2 DOS 10+)
  907.  
  908.            36   Data loss on resize
  909.            35   Data-safe resize error
  910.            34   Format-protect resize error
  911.            33   Write-protect resize error
  912.            32   Resize request generic error
  913.            19   Evaluation period has expired
  914.            18   Open files left in disk
  915.            17   Temporary file acess error
  916.            16   Root directory full
  917.             8   Driver access eror
  918.             4   Invalid command/switch
  919.             2   Invalid character is password string
  920.             1   Bad/Invalid unit request
  921.             0   Succesful execution
  922.  
  923.  
  924.  
  925.   B.  Disk Internals
  926.  
  927.   DOS can support several types of disk.  Each disk contains information on its
  928.   capabilities, which is stored on a specific area of the disk.  In addition to
  929.   this information, the disk must contain information necessary to the managing
  930.   of the files and disk space, which is also stored in a reserved disk area.
  931.  
  932.   A DOS-compatible disk consists of 3 reserved areas and a user file area.  The
  933.   reserved areas are the Boot Sector, which contains a table of disk parameters
  934.   used by DOS to manage disk space, and a bootstrap code to start the operating
  935.   system; the File Allocation Table (FAT), containing data on file-space usage;
  936.   and the Root Directory, containing size, location, date, and time information
  937.   about the files on the disk.
  938.  
  939.   The surface of a (physical) disk is laid out as a series of concentric rings,
  940.   called tracks, which are divided radially into sectors.  When storing a file,
  941.   a cluster is the basic unit of disk allocation used by DOS, and consists of a
  942.   group of sectors, whose number varies with the disk type; the file is divided
  943.   among as many sectors as are required to hold it.  Whether just one or all of
  944.   the sectors of a cluster are used, the cluster is marked as in use.
  945.  
  946.   In the FAT there is an entry for each cluster on the disk, containing a value
  947.   that indicates the status of the cluster: reserved for DOS, free, in-use, bad
  948.   and end of cluster chain.  DOS stores cluster information as a cluster chain,
  949.   in which each cluster points to the next cluster in use.  Because the first 2
  950.   entries of the FAT are reserved, the first cluster of available disk space in
  951.   the user file area is cluster number 2.
  952.  
  953.   The length of a FAT entry is either 12 or 16 bits, and it depends on the size
  954.   of the disk in sectors and the cluster size; a 12-bit FAT entry is used until
  955.   cluster values cannot be stored as a 12-bit quantity, which is when there are
  956.   more than 4,079 clusters.  The minimum disk size requiring 16-bit FAT entries
  957.   can be calculated from:
  958.  
  959.         (4079 clusters x [sectors/cluster] x [bytes/sector]) = Disk size
  960.  
  961.   Improper FAT length entry due to modification of the above variables produces
  962.   input/output disk errors; switch /DX monitors the variables to verify whether
  963.   disk contents can be preserved or not.
  964.  
  965.  
  966.  
  967.  
  968.   C.  RAM-Disk Identification & DOS Version
  969.  
  970.   DOS assigns the first available drive letter to a RAM-disk within the default
  971.   range A to E or, for DOS version 3 or higher, the range A to Z if the command
  972.   <LASTDRIVE=Z> is included in CONFIG.SYS. Such a letter is shown by XDISK.SYS.
  973.  
  974.   xDISK drives can be identified by the volume label and the OEM identification
  975.   in the boot sector, which are determined by the program version. If installed
  976.   in a machine using an 80286 or a higher CPU, the disk date of creation is the
  977.   current date in the CMOS chip; for an 8088/8086 CPU, such date is that of the
  978.   assembly of XDISK.SYS.  Similarly, the time of creation is the version number
  979.   of the program when the driver is installed (e.g., 3:60 for version 3.60) for
  980.   a machine using an 8088/8086 CPU, or the current time in the CMOS chip for an
  981.   80286 CPU.  Afterward, the current time and date maintained by DOS are always
  982.   used for the time/date creation stamp whenever the disk is reformatted.
  983.  
  984.  
  985.  
  986.  
  987.   D.  Self-Installation in Upper Memory
  988.  
  989.     The driver can install itself in the upper memory area (UMA), that is, at
  990.     RAM addresses between 640 KB and 1024 KB of memory, via switch /H (or its
  991.     subfunctions /Hn, /H[n]X, and /H[n]D).  Program releases prior to version
  992.     3.10 lack this feature.
  993.  
  994.     The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
  995.     version 2.0 or higher; the XMM must be installed prior to the UMB-loading
  996.     of the resident.  Allocation also requires the remapping of UMA addresses
  997.     by a UMB provider, when such a task is not implemented by the XMM itself.
  998.     XMMs require MS-compatible DOS version 3.0 or later.
  999.  
  1000.     HIMEM.SYS is the XMM distributed with MS-DOS 5+. Installation of this XMM
  1001.     and of a UMB provider (e.g. a 386-specific memory manager such as EMM386.
  1002.     EXE) allows DOS 5+ to control UMB allocation, provided that DOS access to
  1003.     the UMA is enabled.  Other 386/486-specific memory managers, e.g. QEMM386
  1004.     (Quarterdeck) or 386MAX (Qualitas), are able to provide UMB remapping and
  1005.     XMS support directly.
  1006.  
  1007.     Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
  1008.     of a minimum upper-memory limit for the UMB to avoid UMA regions having a
  1009.     very slow access time (or to preserve regions with a fast access time for
  1010.     other utilities that require faster times, such as a disk cache or screen
  1011.     accelerator), or to avoid fragmentation of the UMA when UMB allocation is
  1012.     not controlled by DOS 5+, but by the XMM itself. Such a fragmentation may
  1013.     occur when the XMM allocates blocks on a first-fit basis, i.e., the first
  1014.     available UMB having the lowest UMA address is allocated, irrespective of
  1015.     whether or not a (smaller) block matching the requested size is available
  1016.     at a higher UMA address.  Unless the size of the available UMBs increases
  1017.     with increasing memory address, first-fit allocation of a small UMB could
  1018.     lead to the breaking of a large UMB into two smaller ones, thus hampering
  1019.     the installation of larger residents in the UMA.
  1020.  
  1021.     When DOS controls the UMB allocation, the program enforces the allocation
  1022.     of the resident block on a best-fit basis when <n> is not specified, that
  1023.     is, all available blocks are searched (by DOS), and the one matching most
  1024.     closely the size requested is allocated.
  1025.  
  1026.     When DOS controls UMB allocation and <n> is specified, UMBs are allocated
  1027.     on a first-fit basis.  While this may contribute to UMA fragmentation, it
  1028.     allows for the checking of a minimum memory limit in those cases in which
  1029.     the selection or avoidance of a specific UMA region is more important.
  1030.  
  1031.     Thus, compared to the UMB loading provided by the command 'DEVICEHIGH' of
  1032.     MS-DOS 5+, the command 'HIDEVICE' of DR-DOS 6.00, or the similar services
  1033.     provided by some 386/486-specific memory managers, selfloading into a UMB
  1034.     has some advantages, including (1) it requires only an initial free block
  1035.     of upper memory of the size of the resident code only (as opposed to that
  1036.     of the entire program), (2) it permits more user control of the selection
  1037.     of the upper-memory block, and (3) it can help reduce UMA fragmentation.
  1038.  
  1039.     Due to the manner in which 'DEVICEHIGH' changes the UMA allocation chain,
  1040.     do not use this command in any line preceeding that which installs xDISK,
  1041.     if the UMB selfload switch /LH has been specified (see above).
  1042.  
  1043.     Of course, the resident can also be installed in the UMA via a 386-memory
  1044.     manager or via UMB-linked MS-DOS 5+, provided that there is enough memory
  1045.     for the actual size of the entire program, and any additional memory that
  1046.     may be needed by the loading utility.
  1047.  
  1048.     The driver XDISK.SYS is an uncompressed file, while the interface utility
  1049.     XDISK.EXE is a compressed file (that self-expands by a factor of 2 during
  1050.     execution).
  1051.  
  1052.  
  1053.     Note  -------------------------------------------------------------------
  1054.       The address and size of available UMBs can be obtained via MEM.EXE,
  1055.       when DOS controls UMB allocation, or via the memory manager itself,
  1056.       when this allocation is controlled by 386-specific memory managers.
  1057.       In either case, such data can also be obtained with UMAX.EXE, a UMA
  1058.       mapping utility that is distributed by the author. If memory access
  1059.       time is a critical element in the selection of the UMBs, a detailed
  1060.           timing access map is provided by TIMEM.EXE, a utility which is also
  1061.       distributed by the author.
  1062.       -------------------------------------------------------------------
  1063.  
  1064.  
  1065.  
  1066.  
  1067.   E.  xDISK Communication Interface
  1068.  
  1069.   Starting with version 3.32, xDISK implements an interface via interrupt 2Fh,
  1070.   which allows communication with the driver.  A description of this interface
  1071.   is provided below in case you want your programs to detect whether the xDISK
  1072.   driver is loaded in memory or if a given unit is an xDISK drive:
  1073.  
  1074.   Registers at call:
  1075.  
  1076.         AH = 0DDh    Interrupt 2Fh subfunction used by xDISK
  1077.         AL = 0/1-26    Drive unit (1-26) or installation check (0)
  1078.         BX = 7844h    API signature    ("xD")
  1079.         CX = 7844h            ("IS")
  1080.         DX = 7844h            ("K?")
  1081.  
  1082.         ES:DI ->    Pointer to 25-byte minimum length data buffer
  1083.  
  1084.  
  1085.   Return registers if successful:
  1086.  
  1087.         CF = ?        Undetermined
  1088.         AX = 0DDFFh
  1089.         BX = 87BBh    One's complement of signature (NOT "xD")
  1090.         CX = ?        Register not preserved
  1091.         DX = B4C0h    One's complement of signature (NOT "K?")
  1092.  
  1093.      ES:[DI+0] = offset of driver signature for unit in [AL]
  1094.      ES:[DI+2] = segment of (paragraph-aligned) driver address
  1095.      ES:[DI+4] = start of data list (19 bytes)
  1096.  
  1097.  
  1098.   To verify if a given drive is an xDISK unit, place the unit code (1=A, 2=B,
  1099.   3=C, etc) in AL; to verify if any xDISK driver is installed, place 0 in AL.
  1100.   At installation time, xDISK checks whether the INT-2F vector is a null one;
  1101.   if so, it replaces this vector for one that points to an IRET instruction.
  1102.  
  1103.   If the xDISK driver is installed, the INT-2F call returns with the contents
  1104.   of AL = FFh, and the one's complement of the interface signature components
  1105.   in BX and DX.  The contents of CX are not preserved.  The paragraph-aligned
  1106.   (base) segment of the driver is returned in the word starting at ES:[DI+2].
  1107.   If further verification is required, the far address returned in the double
  1108.   word starting at ES:[DI] points to the offset of the following string:
  1109.  
  1110.         DB    "xDISK unit: "  ; 12-byte ID string
  1111.         DB    ?               ; drive unit letter (A-Z)
  1112.         DB    0               ; end of ASCIIz string
  1113.  
  1114.  
  1115.   The status of the following static driver flags is returned starting at ES:
  1116.   [DI+4] through [DI+23]:
  1117.  
  1118.         Offset 04h    1=DOS linked, 0=DOS unlinked disk
  1119.         Offset 05h    1=write protected, 0=not protected
  1120.         Offset 06h    1=root directory full, 0=not full
  1121.         Offset 07h    1=uncompacted free space, 0=compacted
  1122.         Offset 08h    1=resized, 80h=resizable, 0=not resizable
  1123.         Offset 09h    1=inelastic resizable disk, 0=elastic disk
  1124.         Offset 0Ah    ? (reserved)
  1125.         Offset 0Bh    ? (reserved)
  1126.         Offset 0Ch    1=collapsed disk, 0=not collapsed
  1127.         Offset 0Dh    1=using all EMS, 0=using some EMS
  1128.         Offset 0Eh    1=password enabled, 0=password disabled
  1129.         Offset 0Fh    1=password audio feedback, 0=no feedback
  1130.         Offset 10h    1=password video feedback, 0=no feedback
  1131.         Offset 11h    1=confirm changes first, 0=no confirm
  1132.         Offset 12h    1=silent display, 0=verbose display
  1133.         Offset 13h    1=click speaker on disk access, 0=no click
  1134.         Offset 14h    1=flash symbol on disk access, 0=no flash
  1135.         Offset 15h    0=12 bit, FFh=16 bit: length of FAT entries
  1136.         Offset 16h    ? (reserved)
  1137.  
  1138.  
  1139.  
  1140.   6. COPYRIGHT & LICENSE INFORMATION
  1141.   ----------------------------------
  1142.  
  1143.   This documentation, programs, and other files distributed in this software
  1144.   package (the "Software")  are the copyrighted property of FM de Monasterio
  1145.   (the "Author"), who provides the Software and licenses its use. All rights
  1146.   are reserved.
  1147.  
  1148.   The Software is not sold.  A license fee is required to use this Software.
  1149.   This license does not transfer to you either the ownership of or the title
  1150.   to the Software, which remain the property of the Author.  A form required
  1151.   to license the Software is provided in the enclosed file XDISK.REG
  1152.  
  1153.  
  1154.   SINGLE USER LICENSE.  Grants you use of this Software in a single computer
  1155.   at a time; the Software may be transferred to another computer, as long as
  1156.   it is used only in 1 computer at any time; under the license, the Software
  1157.   may NOT be installed on a network server.
  1158.  
  1159.   SITE/15-PCs LICENSE.  Grants you use of this Software in a sigle site or a
  1160.   set of sites, as long as the Software is not used in more than 15 machines
  1161.   at a time, and that such machines are located exclusively within the site.
  1162.   Licenses for more machines are available at discounted prices.
  1163.  
  1164.   SOFTWARE BUNDLING LICENSE.  Please write to the Author.
  1165.  
  1166.   REFUNDS POLICY.  If a problem notified within ninety (90) days of shipping
  1167.   of the registered copy cannot be solved, the registration fee (but not the
  1168.   shipping costs) will be refunded upon receiving a written request with the
  1169.   original diskette(s) enclosed.
  1170.  
  1171.   UPGRADE POLICY.  Program upgrades are limited to licensed users.  Upgrades
  1172.   within the same major version (e.g. release 4.00 through 4.99) are free of
  1173.   charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
  1174.   diskette is included with the request. Other upgrades are charged half the
  1175.   (single-user/site) registration fee.  See the enclosed file XDISK.UPG.
  1176.  
  1177.  
  1178.   U.S. GOVERNMENT INFORMATION
  1179.  
  1180.   The Software is Commercial Computer Software under the Federal Acquisition
  1181.   Regulations of the U.S. government and the Agency Supplements to them. The
  1182.   Software is provided to the Federal Government and its agencies only under
  1183.   the Restricted Rights Provisions of the above noted regulations applicable
  1184.   to commercial software developed at private expense, and not in the public
  1185.   domain. The use, duplication, or disclosure of the Software by the Federal
  1186.   Government or its agencies is subject to the restrictions set forth in the
  1187.   subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
  1188.   clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
  1189.  
  1190.  
  1191.   DISTRIBUTION
  1192.  
  1193.   You may distribute the Software, but you are specifically prohibited from:
  1194.  
  1195.   - Charging fees or asking donations in exchange of or payment
  1196.     for copies of this Software.
  1197.  
  1198.   - Distributing this Software with commercial products without
  1199.     the written, express permission in advance from the author.
  1200.  
  1201.   - Distributing this Software via a for-profit organization or
  1202.     group, either alone or with other software.
  1203.  
  1204.   - Changing any of the contents of this Software including the
  1205.     copyright notice and license information.
  1206.  
  1207.   You may not disassemble or otherwise reverse engineer the Software.  Other
  1208.   uses of the Software are prohibited without a written authorization signed
  1209.   by the Author.
  1210.  
  1211.   Latest program releases may be found at the Information Exchange BBS (703)
  1212.   836-0748, as a compressed archive file.
  1213.  
  1214.  
  1215.   WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
  1216.  
  1217.   The information contained in the documentation for the Software is subject
  1218.   to change without notice.
  1219.  
  1220.   The Author cannot and does not warrant that any functions contained in the
  1221.   Software will meet your requirements, or that its operations will be error
  1222.   free.  The entire risk as to the Software performance or quality, or both,
  1223.   is solely with the user and not the Author.  You assume responsibility for
  1224.   the selection of the Software to achieve your intended results and for the
  1225.   installation, use, and results obtained from the Software.
  1226.  
  1227.   The Author makes no warranty, either implied or expressed, including with-
  1228.   out limitation any warranty with respect to this Software documented here,
  1229.   its quality, performance, or fitness for a particular purpose. In no event
  1230.   shall the Author be liable to you for damages, whether direct or indirect,
  1231.   incidental, special, or consequential arising out the use of or any defect
  1232.   in the Software, even if the Author has been advised of the possibility of
  1233.   such damages, or for any claim by any other party.
  1234.  
  1235.   All other warranties of any kind, either express or implied, including but
  1236.   not limited to the implied warranties of merchantability and fitness for a
  1237.   particular purpose, are expressly excluded.
  1238.  
  1239.   By using the Software, you acknowledge (1) to have read and understood all
  1240.   parts of this document and (2) to have agreed with and accepted all of its
  1241.   terms and provisions without any reservation.
  1242.  
  1243.   For information on the terms of the Limited Warranty for licensed Software
  1244.   copies or any other information on this program, please write to:
  1245.  
  1246.                 FM de Monasterio
  1247.                 P.O. Box 219
  1248.                 Cabin John, MD 20818-0219
  1249.                 USA
  1250.  
  1251.     ┌─────────────────────────────────────────────────────────────┐
  1252.     │ Trademarked names are the property of the respective owners │
  1253.     └─────────────────────────────────────────────────────────────┘
  1254.  [END]
  1255.